package com.woniu.user.service.impl;

import com.woniu.user.domain.CustomerCoupon;
import com.woniu.user.mapper.CustomerCouponMapper;
import com.woniu.user.service.ICustomerCouponService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 用户优惠券Service业务层处理
 *
 * @author yy
 * @date 2023-04-03
 */
@Service
public class CustomerCouponServiceImpl implements ICustomerCouponService
{
    @Autowired
    private CustomerCouponMapper customerCouponMapper;

    /**
     * 查询用户优惠券
     *
     * @param id 用户优惠券主键
     * @return 用户优惠券
     */
    @Override
    public CustomerCoupon selectCustomerCouponById(Long id)
    {
        return customerCouponMapper.selectCustomerCouponById(id);
    }

    /**
     * 查询用户优惠券列表
     *
     * @param customerCoupon 用户优惠券
     * @return 用户优惠券
     */
    @Override
    public List<CustomerCoupon> selectCustomerCouponList(CustomerCoupon customerCoupon)
    {
        return customerCouponMapper.selectCustomerCouponList(customerCoupon);
    }

    /**
     * 新增用户优惠券
     *
     * @param customerCoupon 用户优惠券
     * @return 结果
     */
    @Override
    public int insertCustomerCoupon(CustomerCoupon customerCoupon)
    {
        return customerCouponMapper.insertCustomerCoupon(customerCoupon);
    }

    /**
     * 修改用户优惠券
     *
     * @param customerCoupon 用户优惠券
     * @return 结果
     */
    @Override
    public int updateCustomerCoupon(CustomerCoupon customerCoupon)
    {
        return customerCouponMapper.updateCustomerCoupon(customerCoupon);
    }

    /**
     * 批量删除用户优惠券
     *
     * @param ids 需要删除的用户优惠券主键
     * @return 结果
     */
    @Override
    public int deleteCustomerCouponByIds(Long[] ids)
    {
        return customerCouponMapper.deleteCustomerCouponByIds(ids);
    }

    /**
     * 删除用户优惠券信息
     *
     * @param id 用户优惠券主键
     * @return 结果
     */
    @Override
    public int deleteCustomerCouponById(Long id)
    {
        return customerCouponMapper.deleteCustomerCouponById(id);
    }

    @Override
    public CustomerCoupon selectOneByUserIdAndCustomerId(Long userId, Long couponId) {
        return customerCouponMapper.selectOneByUserIdAndCustomerId( userId,  couponId);
    }

    @Override
    @Transactional
    public List<Integer> queryCustomerCoupon(Integer customerId) {
        return customerCouponMapper.selectCustomerCoupon(customerId);
    }

    @Override
    @Transactional
    public Integer modifyCustomerCouponStatus(Integer customerId, Integer couponId) {
        return customerCouponMapper.selectCustomerCouponStatus(customerId,couponId);
    }

    @Override
    @Transactional
    public CustomerCoupon queryByCustomerIdAndCouponId(Integer customerId, Integer couponId) {
        return customerCouponMapper.selectByCustomerIdAndCouponId(customerId,couponId);
    }
}
